from Livros_Arvore import * #Arvore de livros
from Usuarios_Arvore import * #Arvore de Usuarios

BOOK = AVP_Livros()
USER = AVP_Usuario()
#----------------------------------------------------------------------------------------------------------------
start=True
while start == True:
    print "\n+-----------------------------------------------+"
    print "|                 BIBLIOTECA                    |"
    print "+-----------------------------------------------+"
    item=input("\n[1] Adicionar Livro\n[2] Descartar Livro\n[3] Cadastrar Usuario\n[4] Descadastrar Usuario\n[5] Busca\n[6] Emprestimo\n[7] Devolucao\n[8] Imprimir\n[9] Sair \n\n")
    if item > 9 or item <1:
        print "\nOpcao Invalida"
    else:
        if item == 1:
            print "\n+-----------------------------------------------+"
            print "|               ADICIONAR LIVRO                 |"
            print "+-----------------------------------------------+"
            add_livro = raw_input("\nDigite o Livro a ser adicionado: ")
            BOOK.Inserir(add_livro)
            OUT = raw_input("\nLivro adicionado com sucesso. PRESS ENTER")
        
        if item == 2:
            print "\n+-----------------------------------------------+"
            print "|               DESCARTAR LIVRO                 |"
            print "+-----------------------------------------------+"
            del_livro = raw_input("\nDigite o Livro a ser descartado: ")
            OUT = raw_input("\nINCOMPLETO :(")
        
        if item == 3:
            print "\n+-----------------------------------------------+"
            print "|              CADASTRAR USUARIO                |"
            print "+-----------------------------------------------+"
            cpf = raw_input("\nDigite o CPF do novo usuario: ")
            USER.Inserir(cpf)
            OUT = raw_input("\nUsuario adicionado com sucesso. PRESS ENTER")
        
        if item == 4:
            print "\n+-----------------------------------------------+"
            print "|            DESCADASTRAR USUARIO               |"
            print "+-----------------------------------------------+"
            del_user = raw_input("\nDigite o CPF do usuario que deseja excluir: ")
            OUT = raw_input("\nINCOMPLETO :(")
        
        if item == 5:
            print "\n+-----------------------------------------------+"
            print "|               PESQUISAR LIVRO                 |"
            print "+-----------------------------------------------+"
            Buscar = raw_input("\nDigite o nome do livro: ")
            Resultado = BOOK.Pesquisar(BOOK.Raiz, Buscar)
            if Resultado == None:
                print "\nO livro nao foi encontrado"
            else:
                if Resultado.Disponivel() == True:
                    print "\nLivro encontrado e esta disponivel para emprestimo"
                else: 
                    print "\nLivro nao esta disponivel para emprestimo"
        
        if item == 6:
            print "\n+-----------------------------------------------+"
            print "|               EMPRESTIMO LIVRO                |"
            print "+-----------------------------------------------+"
            Buscar = raw_input("\nDigite o nome do livro: ")
            Resultado = BOOK.Pesquisar(BOOK.Raiz, Buscar)
            if Resultado == None:
                print "\nO livro nao foi encontrado"
            else:
                if Resultado.Disponivel() == True: #pode alugar
                    Cliente = raw_input("\nDigite o CPF do cliente: ")
                    Resultado_Cliente = USER.Pesquisar(USER.Raiz, Cliente)
                    if Resultado_Cliente == None:
                        print "\nCliente nao esta cadastrado"
                    else:
                        if Resultado_Cliente.Sacola_cheia() == True:
                            print "\nO usuario nao pode pegar mais de 3 livros"
                        else:
                            Resultado_Cliente.Adicionar_livro_na_sacola(Buscar) 
                            Resultado.Emprestar_Livro(Cliente)
                            print "\nO Livro foi alugado para o cliente"
                else:
                    print "\nLivro indisponivel para emprestimo"
            
        if item == 7:
            print "\n+-----------------------------------------------+"
            print "|                 DEVOLVER LIVRO                |"
            print "+-----------------------------------------------+"
            Buscar = raw_input("\nDigite o nome do livro: ")
            Resultado = BOOK.Pesquisar(BOOK.Raiz, Buscar)
            if Resultado == None:
                print "\nO livro nao foi encontrado"
            else:
                Cliente = raw_input("\nDigite o CPF do cliente: ")
                Resultado_Cliente = USER.Pesquisar(USER.Raiz, Cliente)
                if Resultado_Cliente == None:
                    print "\nCliente nao esta cadastrado"
                else:
                    if Resultado.Devolver_Livro(Cliente) == True: #Livro devolvido
                        Resultado_Cliente.Remover_livro_da_sacola(Buscar) #Removido do cliente
                    else:
                        print "\nEsse livro nao foi emprestado ao usuario"
        
        if item == 8:
            print "\n----------------"
            BOOK.Imprimir_Arvore()
            print "----------------"
            USER.Imprimir_Arvore()
            print "----------------"
            ok=raw_input("Press ENTER")
            
        if item == 9:
            start = False